home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / games / nhak_src.zip / SP_LEV.H < prev    next >
C/C++ Source or Header  |  1993-03-16  |  2KB  |  132 lines

  1. /*    SCCS Id: @(#)sp_lev.h    3.0    88/18/12
  2. /*     Copyright (c) 1989 by Jean-Christophe Collet */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #define W_NORTH     0
  6. #define W_SOUTH     2
  7. #define W_EAST        1
  8. #define W_WEST        3
  9.  
  10. /* 
  11.  * Structures manipulated by the special levels loader & compiler
  12.  */
  13.  
  14. typedef struct {
  15.     xchar x, y, mask;
  16. } door;
  17.  
  18. typedef struct {
  19.     xchar x, y, type;
  20. } trap;
  21.  
  22. typedef struct {
  23.     xchar x, y, class;
  24.     short id;
  25. } monster;
  26.  
  27. typedef struct {
  28.     xchar x, y, class;
  29.     short id;
  30. } object;
  31.  
  32. typedef struct {
  33.     xchar x, y, align, shrine;
  34. } altar;
  35.  
  36. typedef struct {
  37.     xchar x, y, dir, open;
  38. } drawbridge;
  39.  
  40. typedef struct {
  41.     xchar x, y, dir;
  42. } walk;
  43.  
  44. typedef struct {
  45.     xchar x1, y1, x2, y2;
  46. } digpos;
  47.  
  48. typedef struct {
  49.     xchar x, y, up;
  50. } lad;
  51.  
  52. typedef struct {
  53.     xchar x1, y1, x2, y2;
  54.     xchar rtype, rlit;
  55. } region;
  56.  
  57. typedef struct {
  58.     char halign, valign;
  59.     char xsize, ysize;
  60.     char **map;
  61.     char nrobjects;
  62.     char *robjects;
  63.     char nloc;
  64.     char *rloc_x;
  65.     char *rloc_y;
  66.     char nrmonst;
  67.     char *rmonst;
  68.     char nreg;
  69.     region **regions;
  70.     char ndoor;
  71.     door **doors;
  72.     char ntraps;
  73.     trap **traps;
  74.     char nmonster;
  75.     monster **monsters;
  76.     char nobjects;
  77.     object **objects;
  78.     char ndrawbridge;
  79.     drawbridge **drawbridges;
  80.     char nwalk;
  81.     walk **walks;
  82.     char ndig;
  83.     digpos **digs;
  84.     char nlad;
  85.     lad **lads;
  86. #ifdef ALTARS
  87.     char naltar;
  88.     altar **altars;
  89. #endif /* ALTARS /**/
  90. } mazepart;
  91.     
  92. typedef struct {
  93.     char numpart;
  94.     mazepart **parts;
  95. } specialmaze;
  96.  
  97. typedef struct {
  98.     xchar x, y, w, h;
  99.     xchar rtype, rlit;
  100.     char ndoor;
  101.     door **doors;
  102.     char ntraps;
  103.     trap **traps;
  104.     char nmonster;
  105.     monster **monsters;
  106.     char nobjects;
  107.     object **objects;
  108. #ifdef ALTARS
  109.     char naltar;
  110.     altar **altars;
  111. #endif /* ALTARS /**/
  112. } room;
  113.  
  114. typedef struct {
  115.     xchar x1,y1, x2,y2;
  116. } corridor;
  117.  
  118. typedef struct {
  119.     xchar nroom;
  120.     room **rooms;
  121.     xchar ncorr;
  122.     corridor **corrs;
  123.     char ntraps;
  124.     trap **traps;
  125.     char nmonster;
  126.     monster **monsters;
  127.     char nobjects;
  128.     object **objects;
  129.     xchar xdnstairs, ydnstairs;
  130.     xchar xupstairs, yupstairs;
  131. } splev;
  132.